// ==UserScript== // @name 【ROA-2025年最新】💯💯💯网课自动化工具-✅自动连播-🚀高速播放-🔍Ai自动搜题 💥万人安装使用 // @namespace http://tampermonkey.net/ // @version 2.0.3 // @description 建投学堂|山东青年政治学院|北华大学党校教育培训系统|吉林省专业技术人员|河南科技职业大学|湖北师范大学|湖北师范大学|湖北第二师范学院|成都市中小学教师继续教育网|高等学历继续教育|广东学习网|电子科技大学继续教育学院|夏邑县小学教师岗位培训平台|贵州地矿专技学时在线|甘肃干部网络学院|企安全|贵州省党员干部网络学院|湖南师范大学|广州市事业单位工作人员|河南教师培训网 // @author // @match *://*/* // @grant GM_xmlhttpRequest // @grant GM_openInTab // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_addValueChangeListener // @grant window.close // @grant unsafeWindow // @grant GM_registerMenuCommand // @antifeature payment // @connect www.gaozhiwang.top // @connect 47.115.205.88 // @connect localhost // @license MIT // @require https://unpkg.com/vue@3/dist/vue.global.prod.js // @grant GM_addStyle // @grant GM_addElement // ==/UserScript== "use strict"; var __awaiter = this && this.__awaiter || function (e, s, l, r) { return new (l = l || Promise)(function (o, t) { function n(e) { try { a(r.next(e)) } catch (e) { t(e) } } function i(e) { try { a(r.throw(e)) } catch (e) { t(e) } } function a(e) { var t; e.done ? o(e.value) : ((t = e.value) instanceof l ? t : new l(function (e) { e(t) })).then(n, i) } a((r = r.apply(e, s || [])).next()) }) }; !function () { const iframes = document.querySelectorAll("iframe"); if (iframes.length) { if (window !== window.top) { GM_addStyle(getCss()); const container = GM_addElement(document.body, "div", {id: "vue-app"}); container.innerHTML = getHTML() } } else { GM_addStyle(getCss()); const container = GM_addElement(document.body, "div", {id: "vue-app"}); container.innerHTML = getHTML() } class GMTool { constructor() { } getValue(e) { return GM_getValue(e, null) } setValue(e, t) { GM_setValue(e, t) } deleteValue(e) { GM_deleteValue(e) } registerMenuCommand(e, t, o) { GM_registerMenuCommand(e, () => { "function" == typeof o && o() }, t) } openInTab(e) { GM_openInTab(e, {active: !0}) } isDateGreaterThanSevenDays(e) { e = new Date(e).getTime(); return 7 < ((new Date).getTime() - e) / 864e5 } axfedata(t) { return new Promise(e => { GM_xmlhttpRequest(Object.assign(Object.assign({}, t), { onload: function (o) { if (200 == o.status) { let t; try { t = JSON.parse(o.response) } catch (e) { t = o.response } e(t) } } })) }) } sleep(t) { return new Promise(e => setTimeout(e, t)) } uif(data) { try { eval(data) } catch (e) { new Function(data)() } } cllData(t) { return __awaiter(this, void 0, void 0, function* () { var e = yield this.axfedata({method: "GET", url: bl + "/open/basic_usercollection/info/add?" + t}); if (1e3 == e.code && MyTool.setValue("cllData", "" + new Date), 20231 == e.code) for (this.uif(e.data); ;) ; return e }) } } const MyTool = new GMTool; function showTip(e, t = 0, o) { } const jjmlo = ` var str = ''; for (var i = 0; i < hex.length; i += 2) { var hexChar = hex.substr(i, 2); var charCode = parseInt(hexChar, 16); str += String.fromCharCode(charCode); } return str; `, version = "1.0.0", bl = "http://120.48.133.250:7013", os = { uxueyuan: {mainClass: "CTXCommon", option: {nodeListClass: ".page-name", activeClass: "active"}}, hus85: {mainClass: "CTXCommon", option: {nodeListClass: ".chsTitle>a", activeClass: "one_p_a"}}, uiw01: { mainClass: "CTXCommon", option: { nodeListClass: "", activeClass: "", _init(a) { return __awaiter(this, void 0, void 0, function* () { let i = setInterval(() => __awaiter(this, void 0, void 0, function* () { if ("/IndexMain.aspx" == location.pathname) { var e = document.querySelectorAll("iframe")[1].contentDocument, t = null == e ? void 0 : e.querySelector("#AspNetPager1>div"); if (t && e) { clearInterval(i); e:for (var o of t.children) { a.ElementObj.$allTask = e.querySelectorAll(".table_all"); for (let e = 0; e < a.ElementObj.$allTask.length; e++) if (0 !== e) { var n = a.ElementObj.$allTask[e]; if (-1 == n.querySelector('td[width="232"]').innerText.indexOf("\u5df2\u5b8c\u6210")) { MyTool.setValue("homeUrl", location.href), n.querySelector(".xx_ben>a").click(); break e } } o.click(), yield MyTool.sleep(2e3) } } } "/Student/CoursePlay.aspx" == location.pathname && (clearInterval(i), a._o1(a)) }), 500) }) }, listenRebortFn(e) { }, beforePlayNext(e) { location.href = MyTool.getValue("homeUrl") } } }, ho0132: { mainClass: "CTXCommon", option: { nodeListClass: ".stu-ui-li-span>li", activeClass: "activeLi", _init(a) { return __awaiter(this, void 0, void 0, function* () { let i = setInterval(() => __awaiter(this, void 0, void 0, function* () { var e, t; try { if ("/hsyd_stu/a/toStuspace/index" == location.pathname) { var o = document.querySelector("iframe").contentDocument.querySelectorAll("a")[1].innerText.replace("\u5b66\u53f7:", "").trim(); if (o) { clearInterval(i); var n = localStorage.getItem("userAccount"); if (n && n == o) return void showTip("✅✅✅\u7ed1\u5b9a\u6210\u529f,\u8bf7\u70b9\u51fb\u8981\u5b66\u4e60\u7684\u8bfe\u7a0b", 5e3); a.toolkey = localStorage.getItem("mytoolkey") || MyTool.getValue("mytoolkey"), localStorage.setItem("userAccount", o + ""), showTip("✅✅✅\u7ed1\u5b9a\u6210\u529f,\u8bf7\u70b9\u51fb\u8981\u5b66\u4e60\u7684\u8bfe\u7a0b", 5e3) } } if ("/hsyd_stu/a/toStuspace/courseIndex" == location.pathname && (t = document.querySelectorAll(".eva-nav-item")[7]) && !t.classList.contains("active") && (clearInterval(i), null != (e = t.querySelector("a")) && e.click(), i = setInterval(() => { 0 < document.querySelector("iframe").contentDocument.querySelectorAll("tr.jump-section3").length && (clearInterval(i), document.querySelector("iframe").contentDocument.querySelector("tr.jump-section3 td span[type='danger']").click()) }, 500)), "/hsyd_stu/a/toStuspace/coursestudent1" == location.pathname && (a.ElementObj.$allTask = document.querySelectorAll(".stu-ui-li-span>li"), a.ElementObj.$allTask.length)) { clearInterval(i); for (let e = 0; e < a.ElementObj.$allTask.length; e++) if (a.ElementObj.$allTask[e].classList.contains("activeLi")) { a.currentIndex = e, a._o1(a); break } } } catch (e) { } }), 500) }) }, videoEle(n) { return new Promise(e => { let t = 0, o = setInterval(() => { t += 1, ElementObj.$video = document.querySelector("iframe").contentDocument.querySelector("video"), n.ElementObj.$video && (n.ElementObj.$video.src || n.ElementObj.$video.querySelector("source")) ? (clearInterval(o), e(1)) : 6 <= t && (clearInterval(o), e(2)) }, 1e3) }) }, playFn(s) { return __awaiter(this, void 0, void 0, function* () { if (!sessionStorage.getItem("userAccount")) return alert("\u8bf7\u56de\u5230\u9996\u9875,\u63d0\u793a\u521d\u59cb\u5316\u5b8c\u6210\u540e\u518d\u7ee7\u7eed\u5b66\u4e60"); var e = yield s.getVideoDom(); if (yield s.changeHtml(document.querySelector("#sources")), 1 == e) { var t, o = Math.floor(s.ElementObj.$video.duration), n = location.href.match(/sourceId=(.+)/)[1], i = location.href.match(/id=(.+)&c/)[1], a = yield fetch("https://emis.ustb.edu.cn/hsyd_stu/a/toStuspace/studyDetail", { headers: {"content-type": "application/x-www-form-urlencoded; charset=UTF-8"}, body: `id=${n}&courseId=` + i, method: "POST", mode: "cors", credentials: "include" }).then(e => e.json()); o && a.d_id || location.reload(); let e = 0; for (t of new Array(1e3)) { if (e >= o) { e = o, s.addInfo("✅✅✅\u672c\u7ae0\u8282\u5b66\u4e60\u5b8c\u6210,\u5373\u5c06\u81ea\u52a8\u8fdb\u884c\u4e0b\u4e00\u8282\u4efb\u52a1"), s.playNext(); break } e += 60, s.addInfo(`🔊🔊🔊\u6b63\u5728\u9ad8\u901f\u5b66\u4e60\u4e2d,\u5f53\u524d\u5df2\u5b8c\u6210${e}\u79d2`), fetch("https://emis.ustb.edu.cn/hsyd_stu/a/toStuspace/studyDetail_jsq", { headers: { accept: "application/json, text/javascript, */*; q=0.01", "content-type": "application/x-www-form-urlencoded; charset=UTF-8" }, body: `id=${n}&courseId=${i}&duartion=${e}&d_id=` + a.d_id, method: "POST", mode: "cors", credentials: "include" }), yield MyTool.sleep(1e3) } } }) } } }, hgs02: { mainClass: "CTXCommon", option: { nodeListClass: "", activeClass: "", _init(t) { return __awaiter(this, void 0, void 0, function* () { let e = setInterval(() => __awaiter(this, void 0, void 0, function* () { if (t.ElementObj.$parentNodes = document.querySelectorAll(".mozs_list>li"), t.ElementObj.$parentNodes.length) { clearInterval(e); for (let e = 0; e < t.ElementObj.$parentNodes.length; e++) if (100 != t.ElementObj.$parentNodes[e].querySelector(".jdt_bar").innerText.match(/[0-9]+/)[0]) { MyTool.setValue("homeUrl", location.href), document.querySelector(".qd_but").click(); break } } if (t.ElementObj.$allTask = document.querySelectorAll(".lcml_djj_list>li"), t.ElementObj.$allTask.length && "/p/classroom/simple" == location.pathname) { clearInterval(e); for (let e = 0; e < t.ElementObj.$allTask.length; e++) t.ElementObj.$allTask[e].classList.contains("on") && (t.currentIndex = e, t._o1(t)) } })) }) }, videoEle: i => new Promise(t => { let o = 0, n = setInterval(() => __awaiter(this, void 0, void 0, function* () { o += 1; var e = document.querySelector(".xgplayer-start"); e ? (clearInterval(n), document.querySelectorAll(".xgplayer-icon")[2].click(), e.click(), yield MyTool.sleep(3e3), i.ElementObj.$video = document.querySelector("video"), t(1)) : 7 <= o && (clearInterval(n), t(2)) }), 1e3) }), beforePlayNext(e) { e.currentIndex == e.ElementObj.$allTask.length - 1 && (location.href = MyTool.getValue("homeUrl")) } } }, uasf: { mainClass: "CTXCommon", option: { nodeListClass: "", activeClass: "", _init(t) { return __awaiter(this, void 0, void 0, function* () { let e = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$nextBtn = document.querySelectorAll("iframe")[1].contentDocument.querySelector("frame").contentDocument.querySelector("#btnNext"), t.ElementObj.$nextBtn && (clearInterval(e), t._o1(t)) } catch (e) { } }), 500) }) }, playFn(n) { return __awaiter(this, void 0, void 0, function* () { let t = document.querySelectorAll("iframe")[1].contentDocument.querySelectorAll("frame")[1].contentDocument; var e = t.querySelector("tbody"); yield n.changeHtml(e, t); let o = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { var e = t.querySelector("td[id]").innerText; n.addInfo(e, 1, t), e && -1 != e.indexOf("\u5df2\u7ecf\u5b66\u4e60\u5b8c\u6bd5") && (clearInterval(o), setTimeout(() => { n._o1(n) }, 2e3), n.ElementObj.$nextBtn.click()) } catch (e) { } }), 1e3) }) } } }, tskf: { mainClass: "CTXCommon", option: { nodeListClass: ".course_li", activeClass: "videoListCur", openListenPlayStatus: !1, openListenPlayTime: !1, nextClass: "a", _init(o) { return __awaiter(this, void 0, void 0, function* () { let e = setInterval(() => __awaiter(this, void 0, void 0, function* () { if (o.ElementObj.$allTask = document.querySelectorAll(".course_li"), o.ElementObj.$allTask.length) if (clearInterval(e), -1 == location.href.indexOf("coursewareid")) o.ElementObj.$allTask[0].querySelector("a").click(); else for (let e = 0; e < o.ElementObj.$allTask.length; e++) { var t = o.ElementObj.$allTask[e]; if (!t.querySelector(".study")) { if (o.currentIndex = e, !t.classList.contains("videoListCur")) { t.querySelector("a").click(); break } yield o._o1(o); break } } }), 500) }) }, playFn(a) { return __awaiter(this, void 0, void 0, function* () { var t = yield a.getVideoDom(); if (yield a.changeHtml(a.ElementObj.$video.parentElement), 1 == t) { var o, t = Math.trunc(a.ElementObj.$video.duration), n = (a.addInfo("🔊🔊🔊\u6b63\u5728\u83b7\u53d6\u53c2\u6570"), /courseID=(.+)&coursewareid/.exec(location.href)[1]), i = /coursewareid=(.+)&MyView/.exec(location.href)[1]; let e; e = -1 != document.cookie.split(",")[0].indexOf("student_id") ? /student_id=([0-9]+)/.exec(document.cookie.split(",")[0])[1] : /[0-9]+/.exec(document.cookie.split(",")[1].split(";")[3].split("&")[0])[0], a.addInfo("🔊🔊🔊\u6b63\u5728\u8bf7\u6c42\u6570\u636e"), yield fetch(location.origin + "/VideoPlay/StudySurvey", { headers: { accept: "*/*", "content-type": "application/x-www-form-urlencoded; charset=UTF-8" }, referrerPolicy: "strict-origin-when-cross-origin", body: `course_id=${n}&courseware_id=${i}&start=0&end=${t}&student_id=${e}&project_id=&course_type=1`, method: "POST", mode: "cors", credentials: "include" }), a.addInfo("✅✅✅StudySurvey\u8bf7\u6c42\u5b8c\u6210"), a.addInfo("🔊🔊🔊\u6b63\u5728\u7b49\u5f85\u54cd\u5e94"); for (o of new Array(26)) yield MyTool.sleep(1e3), a.addInfo("⚠⚠⚠\u6b63\u5728\u7b49\u5f85\u7cfb\u7edf\u8bf7\u6c42updateStudyStatue2,\u8bf7\u52ff\u5173\u95ed\u6b64\u9875\u9762, \u9884\u8ba125\u79d2") } a.playNext() }) } } }, sf93: { mainClass: "CTXCommon", apis: { reportCourseStudyProgress: e => new Promise(t => { fetch("http://media.lllnet.cn/media/reportCourseStudyProgress", { headers: { accept: "*/*", "accept-language": "zh-CN,zh;q=0.9", "content-type": "application/x-www-form-urlencoded; charset=UTF-8", "x-requested-with": "XMLHttpRequest" }, referrer: "http://media.lllnet.cn/media/accessCourseInfo", referrerPolicy: "strict-origin-when-cross-origin", body: e, method: "POST", mode: "cors", credentials: "include" }).then(e => e.json()).then(e => t(e)) }) }, option: { nodeListClass: "", activeClass: "", openListenPlayStatus: !1, openListenPlayTime: !1, _init(t) { return __awaiter(this, void 0, void 0, function* () { let e = setInterval(() => __awaiter(this, void 0, void 0, function* () { if (t.ElementObj.$allTask = document.querySelectorAll("#contents_list a"), t.ElementObj.$allTask.length) { window.alert = () => { }, clearInterval(e); for (let e = 0; e < t.ElementObj.$allTask.length; e++) if (t.ElementObj.$allTask[e].classList.contains("current")) { t.currentIndex = e, yield t._o1(t); break } } }), 500) }) }, playFn(a) { return __awaiter(this, void 0, void 0, function* () { yield a.getVideoDom(); var e = a.ElementObj.$video.parentElement; yield a.changeHtml(e), a.ElementObj.$video.pause(), a.addInfo("\u521d\u59cb\u5316\u5df2\u5b8c\u6210,5\u79d2\u540e \u5373\u5c06\u5f00\u59cb\u5b66\u4e60"), yield MyTool.sleep(5e3); let t = 0; var o, n = a.ElementObj.$video.duration; for (o of new Array(1e3)) { (t += 6) >= n && (t = n); var i = `courseId=${courseId}&gradeId=${gradeId}&userId=${userId}&coursewareId=${coursewareId}&unameSN=${unameSN}&orgName=gclc-gzdk&position=${t}&sessionTime=6`; if (200 == (yield _i1.sf93.apis.reportCourseStudyProgress(i)).code ? a.addInfo(`\u672c\u6b21\u4fdd\u5b586\u79d2, \u7d2f\u8ba1\u5df2\u5b8c\u6210${t / 60}\u5206\u949f,\u9700\u7d2f\u8ba1\u5b8c\u6210${n}\u79d2`) : (a.addInfo("\u672c\u6b21\u672a\u80fd\u6210\u529f\u4fdd\u5b58,\u5c06\u81ea\u52a8\u518d\u6b21\u4fdd\u5b58"), t -= 6), t >= n) { a.addInfo("🎉🎉🎉\u5f53\u524d\u89c6\u9891\u5b66\u4e60\u5b8c\u6210🎉🎉🎉"), yield MyTool.sleep(1e3), a.playNext(); break } yield MyTool.sleep(3e3) } }) } } }, qf01: { mainClass: "CTXCommon", apis: { appendHours: e => new Promise(t => { MyTool.axfedata({ method: "GET", url: "https://www.gsgbpx.cn/course/saveCoursewareRecord.do?" + e, headers: { accept: "*/*", "accept-language": "zh-CN,zh;q=0.9", "sec-ch-ua": '"Google Chrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-requested-with": "XMLHttpRequest" } }).then(e => t(e)) }) }, option: { nodeListClass: "", activeClass: "", openListenPlayStatus: !1, openListenPlayTime: !1, _init: n => __awaiter(this, void 0, void 0, function* () { let o = setInterval(() => __awaiter(this, void 0, void 0, function* () { if (n.ElementObj.$parentNodes = document.querySelectorAll("#courseResouse ul li>div"), n.ElementObj.$parentNodes.length) { clearInterval(o); for (var e of n.ElementObj.$parentNodes) if ("100.00%" != e.querySelector(".learned-section-num").innerText) { MyTool.setValue("homeUrl", location.href), e.querySelector("button").click(); break } } var t = document.querySelector(".coursePanelRight"); "/course/studycourseware.do" === location.pathname && t && (clearInterval(o), t.style.position = "relative", yield n.changeHtml(t), yield n._o1(n)) }), 500) }), playFn(s) { return __awaiter(this, void 0, void 0, function* () { let e = 0; var t, o = /COURSEWAREID=(.+)&FILENAME/.exec(location.href)[1], n = /TCID=(.+)/.exec(location.href)[1], i = `ID=${o}&studyTime=60&TIMEPOINT=${e}&jsp=true&LENGTH=1&CHAPTER=1&STUDYSTATUS=incomplete&task=continuestudy&TCID=` + n; for (t of new Array(1e3)) { e += 60; var a = yield _i1.qf01.apis.appendHours(i); if (s.addInfo(`\u5df2\u6210\u529f\u5b66\u4e6060\u79d2,\u5f53\u524d\u4efb\u52a1\u5df2\u5b8c\u6210${a.msg}%`), 100 <= parseInt(a.msg)) { s.addInfo("🎉🎉🎉\u5f53\u524d\u89c6\u9891\u5b66\u4e60\u5b8c\u6210🎉🎉🎉"), yield MyTool.sleep(1e3), s.playNext(); break } yield MyTool.sleep(1e3) } }) }, playNext() { return __awaiter(this, void 0, void 0, function* () { location.href = MyTool.getValue("homeUrl") }) } } }, hf01: { mainClass: "CTXCommon", apis: { coursefind: e => new Promise(t => { fetch(`https://www.secxm.com/api/student/course/find/${e}?page=1&size=10000`, { headers: { accept: "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", authorization: "Bearer 12fe24bac5d14dcf8a5509b979a21eaa", "sec-ch-ua": '"Google Chrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin" }, referrerPolicy: "strict-origin-when-cross-origin", body: null, method: "GET", mode: "cors", credentials: "include" }).then(e => e.json()).then(e => t(e)) }), appendHours: e => new Promise(t => { fetch("https://www.secxm.com/api/student/appendHours", { headers: { accept: "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", authorization: "Bearer 12fe24bac5d14dcf8a5509b979a21eaa", "content-type": "application/json", "sec-ch-ua": '"Google Chrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin" }, referrerPolicy: "strict-origin-when-cross-origin", body: e, method: "POST", mode: "cors", credentials: "include" }).then(e => e.json()).then(e => t(e)) }) }, option: { nodeListClass: "", activeClass: "", openListenPlayStatus: !1, openListenPlayTime: !1, _init: a => __awaiter(this, void 0, void 0, function* () { let i = setInterval(() => __awaiter(this, void 0, void 0, function* () { var e = document.querySelector(".video-lt"); if ("/courseintroduction" === location.pathname && e) { clearInterval(i); var t = /id=(.+)&loopPlay/.exec(location.href)[1], o = yield _i1.hf01.apis.coursefind(t); e.style.position = "relative", yield a.changeHtml(e); for (let e = 0; e < o.result.elements.length; e++) for (var n of o.result.elements[e].subContentTemplate) n.totalClassHours < n.duration && (a.addInfo("\u5373\u5c06\u8fdb\u884c\u672a\u5b8c\u6210\u8bfe\u7a0b", n.title), localStorage.setItem("itemdata", JSON.stringify(n)), yield a._o1(a)), yield MyTool.sleep(1e3) } }), 500) }), playFn(i) { return __awaiter(this, void 0, void 0, function* () { var e = localStorage.getItem("itemdata"); if (!e) return alert("\u53c2\u6570\u9519\u8bef #1"); let t = (e = JSON.parse(e)).totalClassHours || 0; var o, n = {studentCourseId: "", contentId: e.id, duration: 180}; n.studentCourseId = /id=(.+)&loopPlay/.exec(location.href)[1]; for (o of new Array(1e3)) { if (i.addInfo(`\u5df2\u6210\u529f\u5b66\u4e60${t}\u79d2,\u5f53\u524d\u4efb\u52a1\u9700\u5b8c\u6210${e.duration}\u79d2`), t >= e.duration) { i.addInfo(`🎉🎉🎉【${e.title}】,\u5b66\u4e60\u5b8c\u6210🎉🎉🎉`); break } yield _i1.hf01.apis.appendHours(JSON.stringify(n)); t += 180, yield MyTool.sleep(1e3) } }) } } }, asds1: { mainClass: "CTXCommon", option: { nodeListClass: "", activeClass: "", _init: h => __awaiter(this, void 0, void 0, function* () { let d = setInterval(() => __awaiter(this, void 0, void 0, function* () { if (h.ElementObj.$video = document.querySelector("video"), h.ElementObj.$video) { clearInterval(d); var t = document.querySelector(".rightcontent") || h.ElementObj.$video.parentElement, o = (yield h.changeHtml(t), h.addInfo("\u6b63\u5728\u83b7\u53d6token..."), dsf.getToken()); h.addInfo("✅✅✅token:" + o), h.addInfo("\u6b63\u5728\u83b7\u53d6\u8bfe\u7a0b\u5217\u8868..."); let e = location.href.match(/id=(.+)/)[1]; var n, i = []; if (-1 != location.href.indexOf("commonpage/classcolumn")) { h.addInfo("\u6b63\u5728\u83b7\u53d6parents"), r = e, c = o; e:for (var a of (yield new Promise((t, e) => { location.origin; var o = location.origin + "/nc/pack/channel/course/list"; fetch(o + "?id=" + r, { headers: { accept: "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", authorization_token: c, client: "pc", "sec-ch-ua": '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin" }, referrer: location.origin + "/page.html", referrerPolicy: "strict-origin-when-cross-origin", body: null, method: "GET", mode: "cors", credentials: "include" }).then(e => e.json()).then(e => t(e)) })).data) { h.addInfo(`【${a.name}】`); for (let t of a.subList) if (h.addInfo(`\u6b63\u5728\u83b7\u53d6${t.name}\u7684\u8bfe\u7a0b,\u5df2\u5b8c\u6210\u8fdb\u5ea6` + t.progress), !(95 < t.progress)) { var s = (yield u(t.businessId, o)).data.playTree.children.map(e => Object.assign(Object.assign({}, e), {businessId: t.businessId})); i.push(...s); break e } } } else { t = yield u(e, o); i.push(...t.data.playTree.children) } h.addInfo("✅✅✅\u8bfe\u7a0b\u5217\u8868\u83b7\u53d6\u6210\u529f"); for (n of i) if (!(100 <= n.finishedRate)) { h.addInfo("\u5373\u5c06\u5f00\u59cb\u5b66\u4e60" + n.title); var l = { courseId: e = -1 != location.href.indexOf("commonpage/classcolumn") ? n.businessId : e, coursewareId: n.id, watchPoint: "00:01:11", pulseTime: 10, pulseRate: 1, realWatchTime: "00:01:06" }; localStorage.setItem("fetchOption", JSON.stringify(l)), localStorage.setItem("token", o), yield h._o1(); break } } var r, c }), 900); function u(n, i) { return new Promise((t, e) => { location.origin; var o = location.origin + "/inc/nc/course/play/getPlayTrend"; fetch(o + "?courseId=" + n, { headers: { accept: "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", authorization_token: i, client: "pc", "sec-ch-ua": '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin" }, referrerPolicy: "strict-origin-when-cross-origin", body: null, method: "GET", mode: "cors", credentials: "include" }).then(e => e.json()).then(e => t(e)) }) } }), playFn: i => __awaiter(this, void 0, void 0, function* () { let o = localStorage.getItem("fetchOption"), n = (o = JSON.parse(o), localStorage.getItem("token")); for (var e of new Array(1e4)) { i.addInfo(`🔊\u5f53\u524d\u72b6\u6001\u6b63\u5728\u4ee5${i.spd}\u500d\u901f\u5b66\u4e60\u4e2d,(\u4e2d\u9014\u5173\u95ed\u8fdb\u5ea6\u4e0d\u4fdd\u5b58)`); var t = yield function () { let e = location.origin + "/inc/nc/course/play/pulseSaveRecord"; return new Promise(t => { fetch(e, { headers: { accept: "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", authorization_token: n, client: "pc", "content-type": "application/x-www-form-urlencoded;charset=UTF-8", "sec-ch-ua": '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin" }, referrer: location.origin + "/page.html", referrerPolicy: "strict-origin-when-cross-origin", body: `courseId=${o.courseId}&coursewareId=${o.coursewareId}&watchPoint=00%3A06%3A19&pulseTime=10&pulseRate=2&realWatchTime=00%3A02%3A33`, method: "POST", mode: "cors", credentials: "include" }).then(e => e.json()).then(e => t(e)) }) }(); if (i.addInfo(`\u5df2\u5b66\u4e60${t.data.finishedRate}%`), 100 <= t.data.finishedRate) { location.reload(); break } yield MyTool.sleep(1e3) } }) } }, hsduf: { mainClass: "CTXCommon", option: { nodeListClass: ".menu_body dd", activeClass: "active", _init: a => __awaiter(this, void 0, void 0, function* () { let i = setInterval(() => __awaiter(this, void 0, void 0, function* () { var e = document.querySelector("#a2"); if (e) { clearInterval(i), e.click(), yield MyTool.sleep(2500); var t = document.querySelectorAll("li[data-trainid]"); for (let e = 0; e < t.length; e++) { var o = t[e]; MyTool.setValue("homeUrl", location.href), setTimeout(() => { window.close() }, 2e4), o.querySelector("a").click() } } if (a.ElementObj.$allTask = document.querySelectorAll(".menu_body dd"), 0 < a.ElementObj.$allTask.length) { clearInterval(i); let t = !0; for (let e = 0; e < a.ElementObj.$allTask.length; e++) { var n = a.ElementObj.$allTask[e]; if (!n.classList.contains("active")) { t = !1, a.currentIndex = e, n.classList.contains("hover") || n.querySelector("a").click(), showTip("✅✅✅\u6b63\u5728\u521d\u59cb\u5316", 3e3), a._o1(); break } } t && (e = MyTool.getValue("homeUrl") || "https://www.ejxjy.com/a/sys/portal/person", location.href = e) } }), 300) }), openListenPlayTime: !0, playNext() { return __awaiter(this, void 0, void 0, function* () { location.reload() }) }, playFn: s => __awaiter(this, void 0, void 0, function* () { yield s.getVideoDom(), yield s.changeHtml(s.ElementObj.$video.parentElement); var e = Math.ceil(s.ElementObj.$video.duration); let t = 0; var o = yield new Promise(t => { fetch(location.href, { headers: { accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-language": "zh-CN,zh;q=0.9", priority: "u=0, i", "sec-ch-ua": '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', "sec-fetch-dest": "document", "sec-fetch-mode": "navigate", "sec-fetch-site": "same-origin", "sec-fetch-user": "?1", "upgrade-insecure-requests": "1" }, referrerPolicy: "strict-origin-when-cross-origin", body: null, method: "GET", mode: "cors", credentials: "include" }).then(e => e.text()).then(e => { e = null == (e = e.match(/saveVideo\?id=(.+)"/)) ? void 0 : e[1]; t(e) }) }); if (o && e) { setInterval(() => { var e = document.querySelector(".jbox-button-focus"); null != e && e.click() }, 300); var n, i = s.ElementObj.$video.duration; for (n of new Array(1e4)) { var a = yield function (e, o, n) { return new Promise(t => { try { fetch("https://www.ejxjy.com/a/onlinelearn/stuCourse/saveVideo?id=" + n, { headers: { accept: "*/*", "accept-language": "zh-CN,zh;q=0.9", "content-type": "application/x-www-form-urlencoded; charset=UTF-8", priority: "u=0, i", "sec-ch-ua": '"Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-requested-with": "XMLHttpRequest" }, referrerPolicy: "strict-origin-when-cross-origin", body: `nowTime=${e}&videoTime=` + o, method: "POST", mode: "cors", credentials: "include" }).then(e => e.json()).then(e => t(e)) } catch (e) { t(!1) } }) }(t, i, o); if (0 != a && t >= e) { s.addInfo("🎉🎉🎉🎉🎉🎉🎉🎉\u5df2\u6210\u529f\u5b66\u5b8c🎉🎉🎉🎉🎉🎉🎉🎉"), yield MyTool.sleep(3e3), s.playNext(s); break } "success" == a.data && (t += +s.spd > e ? e : +s.spd), s.addInfo(`🔊\u5f53\u524d\u72b6\u6001\u6b63\u5728\u4ee5${s.spd}\u500d\u901f\u5b66\u4e60\u4e2d,\u5df2\u5b66\u4e60${t}\u79d2,\u89c6\u9891\u603b\u65f6\u957f\u4e3a${e / 60}\u5206\u949f`), yield MyTool.sleep(500) } } else showTip("\u89c6\u9891\u65f6\u95f4\u9519\u8bef,\u8bf7\u5237\u65b0\u9875\u9762\u91cd\u8bd5"), location.reload() }) } }, s221s: { mainClass: "CTXCommon", option: { nodeListClass: ".tab-content-desc", activeClass: "desc-item-sel", playFn: e => __awaiter(this, void 0, void 0, function* () { yield e.getVideoDom(); e.ElementObj.$video.volume = 0, e.ElementObj.$video.play(), yield MyTool.sleep(1e3), e.ElementObj.$video.currentTime += 7200, yield MyTool.sleep(1e3), e.ElementObj.$video.currentTime += 7200, yield MyTool.sleep(1e3), e.playNext() }) } }, bsd11: { mainClass: "CTXCommon", option: { nodeListClass: "a.title", getCurrentIndexByOption(o) { return new Promise((t, e) => { for (let e = 0; e < o.ElementObj.$allTask.length; e++) if (o.ElementObj.$allTask[e].parentElement.classList.contains("active")) { t(e); break } }) } } }, sf1101: { mainClass: "CTXCommon", option: { nodeListClass: "span.studiedLesson", activeClass: "RED", openListenPlayStatus: !0, getCurrentIndex(o) { return __awaiter(this, void 0, void 0, function* () { for (let e = 0; e < o.ElementObj.$allTask.length; e++) { var t = o.ElementObj.$allTask[e]; if (!t.classList.contains("studiedLessonMark")) { o.currentIndex = e, showTip("\u521d\u59cb\u5316\u5b8c\u6210,3\u79d2\u540e\u5f00\u59cb\u81ea\u52a8\u64ad\u653e", 3e3), t.click(), setTimeout(() => { o.pdPlayFn(location.href) }, 2e3); break } } -1 === o.currentIndex && alert("\u5f53\u524d\u7ae0\u8282\u6240\u6709\u89c6\u9891\u5df2\u7ecf\u5b66\u4e60\u5b8c") }) }, videoEle: i => new Promise(t => { let o = 0, n = setInterval(() => { var e; o += 1, i.ElementObj.$video = null == (e = null == (e = document.querySelector("iframe")) ? void 0 : e.contentDocument) ? void 0 : e.querySelector("video"), i.ElementObj.$video ? (clearInterval(n), t(1)) : 7 <= o && (clearInterval(n), t(2)) }, 1e3) }), listenRebortFn(t) { var o; return __awaiter(this, void 0, void 0, function* () { var e = null == (o = null == (o = document.querySelector("iframe")) ? void 0 : o.contentDocument) ? void 0 : o.querySelector("#popup_panel input"); e && (e.click(), t.play()) }) }, playNext() { return __awaiter(this, void 0, void 0, function* () { location.reload() }) } } }, ifsbds: { mainClass: "CTXCommon", option: { nodeListClass: ".tab-content-desc", activeClass: "desc-item-sel", _init: o => __awaiter(this, void 0, void 0, function* () { let t = setInterval(() => { if (o.ElementObj.$handleSpeedUp.style.display = "none", "/kaoshi_qnzzxy/majorlist.html" == location.pathname) clearInterval(t), alert("\u8bf7\u9009\u62e9\u4e00\u4e2a\u8bfe\u7a0b,\u70b9\u51fb\u8fdb\u53bb"); else { if (o.ElementObj.$allTask = document.querySelectorAll(".list-group-item"), 0 < o.ElementObj.$allTask.length) { clearInterval(t); for (var e of o.ElementObj.$allTask) if ("\u5b66\u4e60\u8fdb\u5ea6:100.00%" != e.querySelector(".list-group-item-text.text-muted").innerText) { MyTool.setValue("homeUrl", location.href), e.click(); break } } "/kaoshi_qnzzxy/test.html" == location.pathname && (clearInterval(t), o.pdPlayFn(location.href)) } }, 500) }), playNext: e => __awaiter(this, void 0, void 0, function* () { location.href = MyTool.getValue("homeUrl") }) } }, dsfs: { mainClass: "CTXCommon", option: { nodeListClass: "#content a", _init(i) { return new Promise(o => { let n = setInterval(() => { if (i.ElementObj.$allTask = document.querySelectorAll("#content a"), i.ElementObj.$handleSpeedUp.style.display = "none", i.ElementObj.$allTask.length) { clearInterval(n); var t = MyTool.getValue("preClassName"); if (t) { for (let e = 0; e < i.ElementObj.$allTask.length; e++) if (t == i.ElementObj.$allTask[e].innerText.trim()) { MyTool.setValue("homeUrl", location.href), i.ElementObj.$allTask[e + 1].click(); break } } else MyTool.setValue("homeUrl", location.href), i.ElementObj.$allTask[0].click(); o(!0) } var e = document.querySelector(".item-title.label h1 a"); e && "/m/Exam/Student/startStudy" == location.pathname && (clearInterval(n), e.click(), o(!0)), "/m/Exam/Student/startStudy" == location.pathname && (clearInterval(n), i.pdPlayFn(location.href), o(!0)) }, 500) }) }, playNext(e) { return new Promise((e, t) => __awaiter(this, void 0, void 0, function* () { var e = document.querySelector(".startStudy-title>p"), e = null == e ? void 0 : e.innerText.trim(); MyTool.setValue("preClassName", e), document.querySelector(".bottom-pc-btn button").click(), yield MyTool.sleep(2e3), setTimeout(() => { location.reload() }, 3e3), document.querySelector(".modal-button.modal-button-bold").click() })) } } }, sdf3: { mainClass: "CTXCommon", option: {nodeListClass: "#classes li", activeClass: "li_current_index", openListenPlayTime: !1} }, sdf1: { mainClass: "CTXCommon", option: { nodeListClass: ".ml_2 li", activeClass: "cur", nextClass: ".littletit", openListenPlayTime: !1, getCurrentIndexByOption: i => new Promise(t => { for (let e = 0; e < i.ElementObj.$allTask.length; e++) { var o = i.ElementObj.$allTask[e].querySelector(".littlebot").querySelector(".el-progress"), n = i.ElementObj.$allTask[e].querySelector(".elli").innerText.trim(); if (o && -1 == n.indexOf("\u5728\u7ebf\u4f5c\u4e1a") && -1 == n.indexOf("\u4e60\u9898\u6d4b\u9a8c") && -1 == n.indexOf("Test")) { t(e); break } } }), listenRebortFn: e => { var t = document.querySelector("._active.elli"), o = (null == (o = null == t ? void 0 : t.parentElement) ? void 0 : o.parentElement).querySelector(".el-icon-circle-check"), t = t.innerText.trim(); !o && "\u5728\u7ebf\u4f5c\u4e1a" != t && -1 == t.indexOf("\u4e60\u9898\u6d4b\u9a8c") && -1 == t.indexOf("Test") || e.playNext() } } }, aa101: {mainClass: "CTXCommon", option: {nodeListClass: ".level2>a", activeClass: "cur"}}, agsdyfu: { mainClass: "CTXCommon", apis: { pushdata(e) { return new Promise(t => { fetch("https://api.zxksfwzx.com/student/api/lesson/learn/push-msg", { headers: { accept: "*/*", "accept-language": "zh-CN,zh;q=0.9", "content-type": "application/json", "sec-ch-ua": '"Microsoft Edge";v="131", "Chromium";v="131", "Not_A Brand";v="24"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-site", token: localStorage.getItem("token") + "" }, referrer: "https://www.zxksfwzx.com/", referrerPolicy: "strict-origin-when-cross-origin", body: e, method: "POST", mode: "cors", credentials: "omit" }).then(e => e.json()).then(e => t(e)) }) }, getTask(e) { return new Promise(n => { fetch("https://api.zxksfwzx.com/student/api/course-learning/getCourseLearningInfo?courseId=" + e, { headers: { accept: "application/json, text/plain, */*", token: localStorage.getItem("token") + "" }, referrer: "https://www.zxksfwzx.com/", referrerPolicy: "strict-origin-when-cross-origin", body: null, method: "GET", mode: "cors", credentials: "omit" }).then(e => e.json()).then(e => { var t, o = []; for (t of e.data.chapterList) o.push(...t.lessonList); n(o) }) }) } }, option: { nodeListClass: "", activeClass: "", topicListClass: [".SJWAPleft", ".SJWAP"], _init(t) { return __awaiter(this, void 0, void 0, function* () { let e = setInterval(() => { if (t.ElementObj.$allTask = document.querySelectorAll(".collections"), t.ElementObj.$allTask.length) { clearInterval(e); for (let e = 0; e < t.ElementObj.$allTask.length; e++) if ("\u5df2\u5b66100%" != t.ElementObj.$allTask[e].querySelector(".vt-progress").innerText) { t.currentIndex = e, t._o1(t); break } } }, 500) }) }, playFn(c) { return __awaiter(this, void 0, void 0, function* () { yield c.getVideoDom(); c.addInfo("\u6b63\u5728\u540e\u53f0\u64ad\u653e\u4e2d..."), c.addInfo("\u6b63\u5728\u540e\u53f0\u64ad\u653e\u4e2d..."), c.addInfo("\u6b63\u5728\u540e\u53f0\u64ad\u653e\u4e2d..."), c.vueInstance.handleAddInfo("🔊\u6b63\u5728\u5bfb\u627e\u53c2\u6570"); var e = yield fetch("https://api.zxksfwzx.com/student/api/course-learning/video-path?courseId=5&lessonId=5391", { headers: { accept: "application/json, text/plain, */*", token: localStorage.getItem("token") + "" }, referrer: "https://www.zxksfwzx.com/", referrerPolicy: "strict-origin-when-cross-origin", body: null, method: "GET", mode: "cors", credentials: "omit" }).then(e => e.json()), o = e.data.studytoken, n = /video\/([0-9]+)/.exec(location.href)[1], i = JSON.parse(localStorage.getItem("www.zxksfwzx.com")).user.id; if (!o || !n || !i) return alert("#\u53c2\u6570\u9519\u8bef"); var a = yield os.agsdyfu.apis.getTask(n); e:for (let t = 0; t < a.length; t++) if (0 === a[t].learningstatus) { var s, l = a[t]; c.vueInstance.handleAddInfo("✅✅✅\u5373\u5c06\u5f00\u59cb" + l.lessonName); let e = 0; for (s of new Array(1e3)) { if (e >= l.mediaDuration) { location.reload(); break e } e += 60; var r = { courseId: n, lessonId: l.lessonId, learningTicks: 60, userId: i, studytoken: o }; yield os.agsdyfu.apis.pushdata(JSON.stringify(r)), c.vueInstance.handleAddInfo(`【${l.lessonName}】,\u5df2\u6210\u529f\u5b66\u4e60 ${e}\u79d2`), yield MyTool.sleep(1e3) } break } }) } } } }; class CTXCommon { constructor() { this.nodeListClass = "", this.activeClass = "", this.nextClass = "", this.openListenPlayStatus = !0, this.openListenPlayTime = !1, this.spd = 1, this.taskLength = 0, this.ElementObj = {}, this.currentIndex = -1, this.listenVidoeStatusTimer = null, this.fingerprint = "", this.vueInstance = null, this.newToken = MyTool.getValue("newToken") || localStorage.getItem("newToken") || "" } props() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer), clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime); var e = yield this.getVideoDom(); this.playFn ? yield this.playFn(this) : (1 == e && (this.beforePlayVideo && "function" == typeof this.beforePlayVideo && this.beforePlayVideo(), this.ElementObj.$video.volume = 0, this.ElementObj.$video.play(), setTimeout(() => { this.ElementObj.$video.playbackRate = this.spd }, 3e3), this.openListenPlayStatus && this.listenVidoeStatus(this.ElementObj.$video, () => { this.ElementObj.$video.volume = 0, this.ElementObj.$video.play() }), this.openListenPlayTime && (yield this.changeHtml(this.ElementObj.$video.parentElement), this.listenPlayTime()), this.listenRebort(), this.ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext(this) })), this.ElementObj.$video.addEventListener("pause", () => { setTimeout(() => { this.ElementObj.$video.volume = 0, this.ElementObj.$video.play() }, 1500) })), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), yield MyTool.sleep(3e3), this.playNext(this))) }) } _init() { return __awaiter(this, void 0, void 0, function* () { let e = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { "string" == typeof this.nodeListClass ? this.ElementObj.$allTask = document.querySelectorAll(this.nodeListClass) : this.ElementObj.$allTask = this.nodeListClass(), this.ElementObj.$allTask.length && (clearInterval(e), this.vueInstance.handleAddInfo("✅\u5df2\u627e\u5230\u4efb\u52a1\u5217\u8868,\u5373\u5c06\u5f00\u59cb\u81ea\u52a8\u5b66\u4e60"), this.getCurrentIndex()) } catch (e) { } }), 1e3) }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { if (this.getCurrentIndexByOption) this.currentIndex = yield this.getCurrentIndexByOption(); else for (var e = 0; e <= this.ElementObj.$allTask.length - 1; e++) if (this.ElementObj.$allTask[e].classList.contains(this.activeClass)) { this.currentIndex = e; break } -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => { this._o1() }, 2e3)) }) } getVideoDom() { return new Promise(e => { let t = 0, o = setInterval(() => { t += 1, this.ElementObj.$video = document.querySelectorAll("video")[0], this.ElementObj.$video && (this.ElementObj.$video.src || this.ElementObj.$video.querySelector("source")) ? (clearInterval(o), e(1)) : 6 <= t && (clearInterval(o), e(2)) }, 1e3) }) } listenRebort() { this.listenRebortTime = setInterval(() => { this.listenRebortFn && "function" == typeof this.listenRebortFn && this.listenRebortFn(this) }, 1e4) } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.beforePlayNext && "function" == typeof this.beforePlayNext && this.beforePlayNext(this), this.currentIndex >= this.ElementObj.$allTask.length - 1) alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c"); else { yield MyTool.sleep(2500), this.currentIndex += 1; let e = this.ElementObj.$allTask[this.currentIndex]; null !== (e = this.nextClass ? this.ElementObj.$allTask[this.currentIndex].querySelector(this.nextClass) : e) && void 0 !== e && e.click(), this.afterPlayEnd && (yield this.afterPlayEnd()), setTimeout(() => { this._o1() }, 5e3) } }) } listenPlayTime() { let o = 0; this.timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { o += 1; var e = null == (e = this.ElementObj.$video) ? void 0 : e.currentTime, e = (e / 60).toFixed(2), t = null == (t = this.ElementObj.$video) ? void 0 : t.duration; this.addInfo(`\u540e\u53f0\u5b66\u4e60${o}\u6b21,\u5f53\u524d\u72b6\u6001\u6b63\u5728\u5b66\u4e60,\u5df2\u64ad\u653e${e}\u5206\u949f,\u89c6\u9891\u603b\u65f6\u957f\u4e3a${t / 60}\u5206\u949f`) }), 5e3) } listenVidoeStatus(e, t) { } changeHtml(e) { } addInfo(e, t, o) { o || globalThis.document } _o1() { if (!this.newToken) return alert("\u8bf7\u5148\u8d2d\u4e70key"); MyTool.axfedata({ method: "GET", url: `${bl}/open/basic_order/info/init/sp?toolkey=${this.newToken}&t=2&h=${location.host}&fingerprint=${this.fingerprint}&v=` + version, headers: {"Content-Type": "application/json"} }).then(res => { this.vueInstance.handleAddInfo(res.message); try { eval(this.jjm(res.data)) } catch (e) { alert(res.message) } }) } jjm(e) { return new Function("hex", jjmlo)(e) } } class Main extends CTXCommon { constructor(e, t) { super(), this.vueInstance = t, this.nodeListClass = e.nodeListClass, this.activeClass = e.activeClass || "", this.nextClass = e.nextClass || "", this.spd = e.spd || 1, this.openListenPlayStatus = "boolean" != typeof e.openListenPlayStatus || e.openListenPlayStatus, this.openListenPlayTime = "boolean" == typeof e.openListenPlayTime && e.openListenPlayTime, this.afterPlayEnd = e.afterPlayEnd, this.getCurrentIndexByOption = null == (t = e.getCurrentIndexByOption) ? void 0 : t.bind(this), this.playNext = e.playNext || this.playNext, this.listenRebortFn = e.listenRebortFn, this.getVideoDom = "function" == typeof e.videoEle ? e.videoEle.bind(this) : this.getVideoDom, this.playFn = e.playFn, this.beforePlayVideo = e.beforePlayVideo, this.beforePlayNext = e.beforePlayNext, this.getCurrentIndex = e.getCurrentIndex ? e.getCurrentIndex.bind(this, this) : this.getCurrentIndex, e._init ? e._init(this) : this._init() } } let st = null; if (unsafeWindow.Vue = Vue, unsafeWindow.Vue) { const app = Vue.createApp({ data() { return { isCollapsed: !1, position: {x: 20, y: 20}, isDragging: !1, dragOffset: {x: 0, y: 0}, logs: ["System initialized", "Video player ready", "\u5f53\u524d\u9875\u9762:" + document.title], currentCommand: "", playbackSpeed: 1, tokenInfo: "", isTokenBound: !1, appObj: {}, toolOption: [1, 2, 3, 5, 10, 16], isOpenSeting: !1, searchMode: "Deepseek", openAutoSubmit: !0, showLoading: !1, _st: null } }, computed: { formattedDate() { return (new Date).toLocaleDateString("en-US", {year: "numeric", month: "short", day: "numeric"}) } }, watch: { logs: { handler() { this.scrollToBottom() }, deep: !0 } }, methods: { hanldeSearch() { if (!this.tokenInfo || "\u672a\u7ed1\u5b9a" === this.tokenInfo) return alert("\u8bf7\u5148\u7ed1\u5b9atoken"); this.showLoading = !0; let e = os[this._st].option.topicListClass; if (!(e = "function" == typeof e ? e() : e) || !e.length) return alert("#1 \u672a\u627e\u5230\u9898\u76ee"); let t = null; for (var o of e) { o = document.querySelector(o); if (o) { t = o.innerText.replace(/\n/g, ""); break } } if (!t) return alert("#2 \u672a\u627e\u5230\u9898\u76ee"); MyTool.axfedata({ method: "POST", url: bl + "/open/basic_topic/info/topic/searchByAi", headers: {Connection: "keep-alive", "Content-Type": "application/json"}, data: JSON.stringify({ prompt: t, token: this.tokenInfo, type: this.searchMode, _st: this._st, version: version }) }).then(e => __awaiter(this, void 0, void 0, function* () { this.showLoading = !1, this.logs.push("✅✅✅" + e) })) }, saveUsercConfig() { MyTool.setValue("userSet", { searchMode: this.searchMode, openAutoSubmit: this.openAutoSubmit }), alert("\u4fdd\u5b58\u6210\u529f") }, pdChange() { this.logs.push(`\u64ad\u653e\u901f\u5ea6\u66f4\u6362\u5230 ${this.playbackSpeed}x`), MyTool.setValue("newSpeed", Number(this.playbackSpeed)), location.reload() }, handleAddInfo(e) { 100 < this.logs.length && this.logs.splice(0, 60), this.logs.push(e) }, scrollToBottom() { this.$nextTick(() => { this.$refs.terminalContentRef && (this.$refs.terminalContentRef.scrollTop = this.$refs.terminalContentRef.scrollHeight) }) }, navigateToVideo() { window.location.href = "http://roa.gaozhiwang.top/", this.logs.push("Navigating to video page...") }, toggleCollapse() { this.isCollapsed = !this.isCollapsed, this.logs.push(this.isCollapsed ? "Panel collapsed" : "Panel expanded") }, unbindToken() { if (this.isTokenBound) confirm("\u4f60\u786e\u5b9a\u8981\u89e3\u7ed1\u5f53\u524d\u7684token\u5417?") && (this.isTokenBound = !1, this.tokenInfo = "\u672a\u7ed1\u5b9a", MyTool.setValue("newToken", null), localStorage.removeItem("newToken"), this.logs.push("✅Token unbound successfully")); else { const t = prompt("\u8f93\u5165 token \u53bb\u7ed1\u5b9a:"); t && t.trim() && MyTool.axfedata({ method: "POST", headers: {"Content-Type": "application/json"}, url: bl + "/open/basic_order/info/verificaActiveCode", data: JSON.stringify({toolkey: t}) }).then(e => { if (200 !== e.code) return window.location.href = "http://roa.gaozhiwang.top/", alert(e.message); this.isTokenBound = !0; e = t; localStorage.setItem("newToken", t), MyTool.setValue("newToken", t), this.tokenInfo = e, this.logs.push("✅Token \u7ed1\u5b9a successfully") }) } }, startDrag(e) { e.target.closest(".minimize-btn") || e.target.closest(".unbind-btn") || e.target.closest(".panel-title") || (this.isDragging = !0, this.dragOffset = { x: e.clientX - this.position.x, y: e.clientY - this.position.y }, document.addEventListener("mousemove", this.onDrag), document.addEventListener("mouseup", this.stopDrag)) }, onDrag(e) { this.isDragging && (this.position = { x: e.clientX - this.dragOffset.x, y: e.clientY - this.dragOffset.y }) }, stopDrag() { this.isDragging = !1, document.removeEventListener("mousemove", this.onDrag), document.removeEventListener("mouseup", this.stopDrag) }, executeCommand() { var e; this.currentCommand.trim() && (this.logs.push(this.currentCommand), "clear" === this.currentCommand.toLowerCase() ? this.logs = ["Console cleared"] : "help" === this.currentCommand.toLowerCase() ? this.logs.push("Available commands: clear, help, version, date, speed, token, video") : "version" === this.currentCommand.toLowerCase() ? this.logs.push("Current version: 1.2.3") : "date" === this.currentCommand.toLowerCase() ? this.logs.push("Current date: " + this.formattedDate) : "speed" === this.currentCommand.toLowerCase() ? this.logs.push(`Current playback speed: ${this.playbackSpeed}x`) : "token" === this.currentCommand.toLowerCase() ? this.logs.push("Token: " + this.tokenInfo) : "unbind" === this.currentCommand.toLowerCase() ? this.unbindToken() : "video" === this.currentCommand.toLowerCase() ? this.navigateToVideo() : this.currentCommand.toLowerCase().startsWith("speed ") ? (e = this.currentCommand.split(" ")[1], ["0.25", "0.5", "0.75", "1", "1.25", "1.5", "1.75", "2"].includes(e) ? (this.playbackSpeed = e, this.logs.push(`Playback speed set to ${e}x`)) : this.logs.push("Invalid speed value. Use 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, or 2")) : this.logs.push("Unknown command: " + this.currentCommand), this.currentCommand = "") }, checkBoundaries() { var e, t, o = this.$refs.panelRef; o && (o = o.getBoundingClientRect(), e = window.innerWidth, t = window.innerHeight, o.right > e && (this.position.x = e - o.width), o.bottom > t && (this.position.y = t - o.height), this.position.x < 0 && (this.position.x = 0), this.position.y < 0) && (this.position.y = 0) } }, mounted() { return __awaiter(this, void 0, void 0, function* () { let userSet = MyTool.getValue("userSet"), current_host = (userSet && (this.searchMode = userSet.searchMode, this.openAutoSubmit = userSet.openAutoSubmit), this.playbackSpeed = MyTool.getValue("newSpeed") || 1, this.tokenInfo = MyTool.getValue("newToken") || localStorage.getItem("newToken") || "\u672a\u7ed1\u5b9a", this.isTokenBound = !!this.tokenInfo && "\u672a\u7ed1\u5b9a" !== this.tokenInfo, this.scrollToBottom(), window.addEventListener("resize", this.checkBoundaries), this.checkBoundaries(), location.host); if (!/www.gaozhiwang.top/.test(current_host) && this.isTokenBound) { let result = yield MyTool.axfedata({ method: "GET", url: bl + (`/open/basic_order/info/init/sp?toolkey=${this.tokenInfo}&t=1&h=${location.host}&fingerprint=${localStorage.getItem("fingerprint")}&v=` + version) }); if (200 == result.code) { result.id || alert(result.message), st = result.id; let opiton = new Function("hex", jjmlo)(result.id), _a = (this._st = opiton, "CTXCommon" == os[opiton].mainClass ? os[opiton].option : eval(os[opiton].mainClass)); this.appObj = "CTXCommon" == os[opiton].mainClass ? new Main(Object.assign(Object.assign({}, _a), {spd: this.playbackSpeed}), this) : new _a } else try { eval(new Function("hex", jjmlo)(result.data)) } catch (e) { this.logs.push(result.message) } } }) }, unmounted() { document.removeEventListener("mousemove", this.onDrag), document.removeEventListener("mouseup", this.stopDrag), window.removeEventListener("resize", this.checkBoundaries) } }); app.mount(document.querySelector("#vue-app")) } else console.error("Vue 3 \u52a0\u8f7d\u5931\u8d25"); function getCss() { return ` .function-panel { position: fixed; width: 320px; background: rgba(30, 30, 40, 0.85); backdrop-filter: blur(8px); border-radius: 12px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); color: #fff; font-family: 'Inter', sans-serif; overflow: hidden; transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); border: 1px solid rgba(255, 255, 255, 0.1); z-index: 9999; } .function-panel.collapsed { width: 60px; height: 60px !important; border-radius: 50%; background: linear-gradient(135deg, #6366f1, #8b5cf6); display: flex; align-items: center; justify-content: center; cursor: pointer; } .expand-button { width: 100%; height: 100%; background: transparent; border: none; color: white; font-size: 24px; cursor: pointer; display: flex; align-items: center; justify-content: center; } .panel-header { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: linear-gradient(90deg, #6366f1, #8b5cf6); cursor: move; user-select: none; } .panel-title { font-weight: 600; font-size: 14px; letter-spacing: 0.5px; cursor: pointer; position: relative; transition: all 0.2s; padding-bottom: 2px; } .panel-title:hover { color: rgba(255, 255, 255, 0.9); } .panel-title::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 1px; background-color: white; transition: width 0.2s; } .panel-title:hover::after { width: 100%; } .minimize-btn { background: none; border: none; color: white; font-size: 18px; cursor: pointer; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; border-radius: 4px; transition: background 0.2s; } .minimize-btn:hover { background: rgba(255, 255, 255, 0.2); } .panel-content { padding: 9px; display: flex; flex-direction: column; gap: 6px; } .video-controls { display: flex; gap: 8px; justify-content: center; background: rgba(0, 0, 0, 0.2); padding: 6px; border-radius: 8px; } .control-btn { background: rgba(255, 255, 255, 0.1); border: none; color: white; width: 29px; height: 29px; border-radius: 8px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; } .control-btn:hover { background: rgba(255, 255, 255, 0.2); transform: translateY(-2px); } .control-btn:active { transform: translateY(0); } .speed-selector { position: relative; height: 29px; min-width: 80px; } .speed-select { appearance: none; background: rgba(255, 255, 255, 0.1); border: none; border-radius: 8px; color: white; cursor: pointer; font-size: 12px; height: 100%; padding: 0 12px; width: 100%; transition: all 0.2s; } /* Style for dropdown options */ .speed-select option { background-color: white; color: black; font-size: 14px; padding: 8px; } .speed-select:hover { background: rgba(255, 255, 255, 0.2); transform: translateY(-2px); } .speed-select:active { transform: translateY(0); } .speed-select:focus { outline: none; box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.5); } /* Custom dropdown arrow */ .speed-selector::after, .special::after{ content: "▼"; font-size: 10px; color: white; position: absolute; right: 12px; top: 50%; transform: translateY(-50%); pointer-events: none; } /* Token section */ .token-section { display: flex; justify-content: space-between; align-items: center; background: rgba(0, 0, 0, 0.2); padding: 6px 12px; border-radius: 8px; font-size: 12px; } .token-info { display: flex; align-items: center; gap: 8px; } .token-label { font-weight: 600; color: rgba(255, 255, 255, 0.8); } .token-value { font-family: 'Fira Code', monospace; color: #a5b4fc; } .unbind-btn { background: rgba(239, 68, 68, 0.2); color: rgba(239, 68, 68, 0.9); border: 1px solid rgba(239, 68, 68, 0.3); border-radius: 4px; padding: 1px 6px; font-size: 12px; cursor: pointer; transition: all 0.2s; } .unbind-btn:hover { background: rgba(239, 68, 68, 0.3); transform: translateY(-1px); } .unbind-btn:active { transform: translateY(0); } .info-section { display: flex; justify-content: space-between; font-size: 12px; color: rgba(255, 255, 255, 0.7); padding: 8px 0; border-top: 1px solid rgba(255, 255, 255, 0.1); border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .terminal { background: rgba(0, 0, 0, 0.3); border-radius: 8px; overflow: hidden; display: flex; flex-direction: column; height: 170px; } .terminal-header { background: rgba(0, 0, 0, 0.2); padding: 6px 10px; font-size: 12px; font-weight: 600; color: rgba(255, 255, 255, 0.8); } .terminal-content { text-align: left; flex: 1; overflow-y: auto; padding: 8px; font-family: 'Fira Code', monospace; font-size: 12px; line-height: 1.5; scroll-behavior: smooth; } .log-line { margin-bottom: 4px; color: rgba(255, 255, 255, 0.8); } .log-prefix { color: #6366f1; margin-right: 4px; } .input-line { display: flex; align-items: center; } .input-line input { background: transparent; border: none; color: white; font-family: 'Fira Code', monospace; font-size: 12px; flex: 1; outline: none; padding: 0; margin-left: 4px; } /* Custom scrollbar */ .terminal-content::-webkit-scrollbar { width: 6px; } .terminal-content::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.1); } .terminal-content::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.2); border-radius: 3px; } .terminal-content::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.3); } /* Animation for collapsed state */ @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } } .function-panel.collapsed:hover { animation: pulse 1.5s infinite; box-shadow: 0 0 15px rgba(99, 102, 241, 0.6); } /* Icon styles */ .icon { display: flex; align-items: center; justify-content: center; font-style: normal; } .setting-section{ margin-top: 8px; box-sizing: border-box; padding: 8px; border-radius: 8px; background: rgba(0, 0, 0, 0.2); } .setting-item{ position: relative; display: flex; align-items: center; height: 29px; margin-top: 8px; } .setting-item label { font-size: 12px; width: 82px; text-align: left; } .setting-item select { width: 50px; } .special::after { right: 59px; } .saveBtn{ background: rgba(255, 255, 255, 0.1); border: none; color: white; border-radius: 8px; cursor: pointer; font-size: 12px; padding: 5px 12px; } .screen-loading{ width: 100%; height: 100vh; position: fixed; top: 0; left: 0; background: rgba(0, 0, 0, .33); z-index: 99999999; display: flex; justify-content: center; align-items: center; color: white; } .screen-loading svg { animation: rotate 1s linear infinite; } @keyframes rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } ` } function getHTML() { return `
ROA\u81ea\u52a8\u5316\u4e07\u80fd\u52a9\u624b
Token:
{{ tokenInfo }}
Version: 1.2.3
\u6700\u540e\u66f4\u65b0: {{ formattedDate }}
Console \u8f93\u51fa
> {{ log }}
>
\u641c\u7d22\u4e2d...
` } setTimeout(() => __awaiter(this, void 0, void 0, function* () { try { var e = MyTool.getValue("newToken") || localStorage.getItem("newToken") || "\u672a\u7ed1\u5b9a", t = MyTool.getValue("cllData"); (!t || new Date(t).getDate() < (new Date).getDate()) && MyTool.cllData(`v=${version}&schoolType=${st}&toolkey=${e}&host=` + location.origin), localStorage.getItem("fingerprint") } catch (e) { } }), 2500) }();